[アップデート]Service Catalog がOrganizations配下でアクセス権の付与まで含めた共有が可能になりました!
Service Catalogの共有機能に、組織内であれば共有先にプリンシパル名を指定してアクセス権を付与することが可能になりました。
以前であればポートフォリオを組織内に共有した際でも、アクセス権の付与自体は共有先の各アカウント上で行う必要がありました。 それが必要なくなるケースも出てきたということで、Organizations環境でポートフォリオを共有して利用する際は非常に便利な機能です。
やってみる
既存のOrganizations環境でポートフォリオの共有を試してみます。ドキュメントは以下です。
ポートフォリオの共有 - AWS Service Catalog
[共有元アカウント]プリンシパルの共有
Service Catalogの管理アカウントで共有をおこなってみます。元々作成していたポートフォリオがあったので、こちらに追加で設定していきました。
ポートフォリオを開くと、アップデートで追加されたアクセス権限の付与が表示されていましたので、こちらから付与してみます。(タブの「アクセス」からも開けます。)
共有画面では、アクセスタイプにプリンシパル名
を指定を指定します。(IAM Principal
はアカウント内に限った範囲で従来のアクセス権の付与方法)
共有先のアカウントでアクセス権を付与したいロール名は「ServiceCatalogEndUserAccess」として付与します。
タイプにはロールの他にユーザー・グループを選択できますので、ユースケースに合わせて設定してください。
既に共有しているポートフォリオの場合、共有設定を更新する必要があります。共有タブを開いて、共有の更新から設定を追加します。
プリンシパル共有にチェックを入れて更新します。
これで共有元の設定は完了です。
[共有先アカウント]IAMロール作成
ここからは組織内にある共有先アカウントで作業します。先ほど指定したプリンシパル名のIAMロールを作成していきます。
ポリシーはAWSServiceCatalogEndUserFullAccessを指定しました。
IAMロール名は共有元で指定した「ServiceCatalogEndUserAccess」で作成しましょう。
[共有先アカウント]製品の確認
先ほど作成したIAMロールに切り替えて、共有されたポートフォリオ配下の製品が表示できるか確認してみます。
Service Catalogのコンソールを見てみるとアクセス権の付与を行なっていなくても、共有したポートフォリオに含まれるVPC Flow logsの製品を確認できました。
注意点
確認した範囲ですが、注意点がありましたので共有しておきます。
IAMユーザー・ロールのプリンシパル名には文字数制限がある
タイプをrole/
、user/
を選択して設定する場合、64文字以下にする必要があるという制限があります。長いロール名などは設定できないケースもあるので注意しましょう。
グループを指定したときは64文字以上書けたので、気にしなくても大丈夫そうです。
部分一致(*)は書けない
部分一致を表現したい場合の*
を使った表記などは書けません。完全一致の名前を指定する必要があるので、共有先のアカウントでは同じロール名などを作成する必要があります。
この制約から、AWS IAM Identity Center(旧AWS SSO)で作成されたロール名を指定できませんでした…
おわりに
Organizations環境のService Catalogが少し便利になるアップデートでした。プリンシパルの共有自体は非常に簡単なので、各アカウント上にIAMロールを作成する仕組みがあれば運用が楽になりそうです。
ただしIAM Identity Centerで作成されたIAMロールを指定できない点には注意が必要です。運用考えて今回のアップデートを検討して頂ければ幸いです。